package org.carl.grpc.cloud.service.a.kit;

import java.lang.reflect.Field;
import java.util.Arrays;
import java.util.List;

/**
 * @author carl
 * Object工具类
 * @date 2018年6月28日 18:23:51
 */
public class ObjectKit {
    /**
     * 获取所有的属性
     * @param clazz Class<?>
     * @param fieldList List<Field>
     * @return Field[]
     */
    public static List<Field> getFieldsByClass(Class<?> clazz, List<Field> fieldList){
        //当父类为null的时候说明到达了最上层的父类(Object类).
        while (clazz != null&&clazz!=Object.class) {
            fieldList.addAll(Arrays.asList(clazz .getDeclaredFields()));
            //得到父类,然后赋给自己
            clazz = clazz.getSuperclass();
            getFieldsByClass(clazz,fieldList);
        }
        return fieldList;
    }
}
